import { NgModule, Optional, SkipSelf } from '@angular/core';
import { throwIfAlreadyLoaded } from './module-import-guard';
import { CacheService } from '@core/routes-services/cache.service';
import { LoginService } from '@core/routes-services/login.service';
import { CurrUserService } from '@core/routes-services/Observer-service/curr-user.service';
import { UserService } from '@core/routes-services/user.service';
import { AgentService } from '@core/routes-services/agent.service';
import { AgentLevelService } from '@core/routes-services/agent-level.service';
import { CustomerService } from '@core/routes-services/customer.service';
import { OrderService } from '@core/routes-services/order.service';
import { UploadFileUtilService } from '@core/routes-services/upload-file-util.service';
import { CompanyService } from '@core/routes-services/company.service';
import { MarketAgentService } from '@core/routes-services/market-agent.service';
import { SalesmanService } from '@core/routes-services/salesman.service';
import { DistrictService } from '@core/routes-services/district.service';
import { MarketAgentLevelService } from '@core/routes-services/market-agent-level.service';
import { SysParamService } from '@core/routes-services/sys-param.service';
import { MarketFansService } from '@core/routes-services/market-fans.service';
import { SalesmanTypeService } from '@core/routes-services/salesman-type.service';
import { ActivityProductService } from '@core/routes-services/activity-product.service';
import { QcloudService } from '@core/routes-services/qcloud.service';
import { MoonCakeService } from '@core/routes-services/moon-cake.service';
import { CompanyTypeService } from '@core/routes-services/company-type.service';
import { RedpackRecordService } from '@core/routes-services/redpack-record.service';
import { ImgMaterialTypeService } from '@core/routes-services/img-material-type.service';
import { ProfitWithdrawService } from '@core/routes-services/profit-withdraw.service';
import { IntegralRecordService } from '@core/routes-services/integral-record.service';
import { AchievementService } from '@core/routes-services/achievement.service';
import { ProfitRecordService } from '@core/routes-services/profit-record.service';
import { OtcCustomerService } from '@core/routes-services/otc-customer.service';
import { OtcConvertProductService } from '@core/routes-services/otc-convert-product.service';
import { OtcConvertService } from '@core/routes-services/otc-convert.service';
import { OtcShopService } from '@core/routes-services/otc-shop.service';
import { OtcBillService } from '@core/routes-services/otc-bill.service';
import { OtcMomentService } from '@core/routes-services/otc-moment.service';
import { CenterService } from '@core/routes-services/center.service';
import { OtcShopBrandService } from '@core/routes-services/otc-shop-brand.service';
import { FinancesService } from '@core/routes-services/finances.service';
import { OtcRuleLogService } from '@core/routes-services/otc-rule-log.service';
import { RuleTemplateService } from '@core/routes-services/rule-template.service';
import { TriggerService } from '@core/routes-services/trigger.service';


@NgModule({
  providers: [
    CacheService,
    LoginService,
    CurrUserService,
    UserService,
    AgentService,
    AgentLevelService,
    CustomerService,
    OrderService,
    UploadFileUtilService,
    CompanyService,
    MarketAgentService,
    SalesmanService,
    DistrictService,
    MarketAgentLevelService,
    UploadFileUtilService,
    SysParamService,
    MarketFansService,
    SalesmanTypeService,
    ActivityProductService,
    MoonCakeService,
    QcloudService,
    CompanyTypeService,
    RedpackRecordService,
    ImgMaterialTypeService,
    ProfitWithdrawService,
    IntegralRecordService,
    AchievementService,
    ProfitRecordService,
    OtcCustomerService,
    OtcConvertProductService,
    OtcConvertService,
    OtcShopService,
    OtcBillService,
    OtcMomentService,
    CenterService,
    OtcShopBrandService,
    FinancesService,
    OtcRuleLogService,
    RuleTemplateService,
    TriggerService]
})
export class CoreModule {
  constructor( @Optional() @SkipSelf() parentModule: CoreModule) {
    throwIfAlreadyLoaded(parentModule, 'CoreModule');
  }
}
